package chapter07

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test09_Map
 * Package: chapter07
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-07-06
 *          Time: 14:35
 */

//Map集合
object Test09_Map {
  def main(args: Array[String]): Unit = {
    //Scala中的Map 和 Java类似 也是一个散列表 他存储的内容也是键值对 k-v映射
    //创建不可变Map
    val map1: Map[String, Int] = Map("a" -> 12, "b" -> 23, "hello" -> 4)
    println(map1) //Map(a -> 12, b -> 23, hello -> 4)
    println(map1.getClass)

    //遍历Map集合
    map1.foreach(println)
    //Map本质就是二元组 (string,Int) 写完整的匿名函数
    map1.foreach((kv:(String,Int)) => println(kv))

    //访问元素
    //keys 获取map的key值 和 val的方法
    println(map1.keys) //Set(a, b, hello)
    println(map1("a")) //12
    println(map1.get("a")) //Some(12)
    for (key <- map1.keys){
      println(s"$key -------------> ${map1(key)}")
    }
    //获取对应没有的key值
    println(map1.get("c")) //None
    //println(map1("c")) //空指针异常
    println(map1.getOrElse("c",0)) //如果c存在 那么就返回0
    //推荐使用以上方法访问数组

  }
}
